package com.zuoshenge.tool;

import org.slf4j.Logger;

import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

public class CompletableFutureUtils {

    public static <T> T getResult(Future<T> future, // 具体执行方法函数
                                  long timeOut, // 超时时间
                                  TimeUnit timeUnit, // 超时时间单位
                                  T defaltValue, // 错误情况返回的默认值
                                  Logger logger // 日志
    ) {
        try {
            return future.get(timeOut, timeUnit);
        } catch (Exception e) {
            logger.error("CompletableFutureUtils.getResult.error:{}", e.getMessage(), e);
            return defaltValue;
        }
    }
}